#pragma once
#include <memory>
#include "Utility/Algebra/Config.h"
#include "DataStructure/Common/SGObject.h"
#include "DataStructure/Common/DataStructureExport.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN

/**
 * @brief    载荷时间插值表，公共基类
 * 
 * @author   wanghuan
 * @date     2025.10.12
 */
struct TABLEDObject : public SGObject
{
    virtual ~TABLEDObject (){}
    /**
     * @brief    载荷插值
     * 
     * @param    t 
     * @return   
     * @author   wanghuan
     * @date     2025.10.12
     */
    virtual SG::Algebra::Real_t Interpolate (SG::Algebra::Real_t t) const = 0;
};
using TABLEDObjectP = std::shared_ptr<TABLEDObject>;
SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE